<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 vector-feature-night-mode-enabled skin-theme-clientpref-os vector-sticky-header-enabled" lang="fr" dir="ltr"><head>
<meta charset="UTF-8">
<title>Visual Basic .NET</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://fr.wikipedia.org/wiki/Visual_Basic_.NET"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.pygments.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/mediawiki.page.gallery.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Visual_Basic_NET rootpage-Visual_Basic_NET skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Visual Basic .NET</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="fr" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="fr" dir="ltr"><p class="mw-empty-elt">
</p>
<table class="infobox_v2 infobox infobox--frwiki noarchive">
<tbody><tr>
<td colspan="2" class="entete informatique" style="background-color:#EEEEEE;color:black;">Visual Basic (Visual Studio)<style data-mw-deduplicate="TemplateStyles:r228712691">
/* start https://fr.wikipedia.org/ */
.mw-parser-output .entete.informatique{background-image:url("./_mw_/Picto.nfo.png")}
/* end https://fr.wikipedia.org/ */
</style>
</td></tr>
<tr><td colspan="3" style="text-align:center; line-height: 1.5em;"> </td></tr>
<tr>
<td colspan="2"><hr style="height:2px; color:inherit; background-color:#EEEEEE;"></td></tr>
<tr>
<th scope="row">Date de première version
</th>
<td><a href="2001" title="2001">2001</a>
</td>
</tr>
<tr>
<th scope="row"><a href="Paradigme_(programmation)" title="Paradigme (programmation)">Paradigme</a>
</th>
<td><a href="Programmation_orient%C3%A9e_objet" title="Programmation orientée objet">Orienté objet</a>, <a href="Programmation_structur%C3%A9e" title="Programmation structurée">Structuré</a> et <a href="Programmation_imp%C3%A9rative" title="Programmation impérative">Impératif</a>
</td>
</tr>
<tr>
<th scope="row">Auteur
</th>
<td><a href="Microsoft" title="Microsoft">Microsoft</a>
</td>
</tr>
<tr>
<th scope="row"><a href="Version_d'un_logiciel" title="Version d'un logiciel">Dernière version</a>
</th>
<td>VB 16.0 (<a href="2019" title="2019">2019</a>)
</td>
</tr>
<tr>
<th scope="row">Typage
</th>
<td><a href="Typage_statique" title="Typage statique">Statique</a>, <a href="Typage_fort" title="Typage fort">Fort</a> et <a href="Syst%C3%A8me_nominatif_de_types" title="Système nominatif de types">nominatif</a>
</td>
</tr>
<tr>
<th scope="row">Dialectes
</th>
<td>VB7 (VS2003), VB8 (VS2005), VB9 (VS2008), VB10 (VS2010)
</td>
</tr>
<tr>
<th scope="row">Influencé par
</th>
<td><a href="Visual_Basic" title="Visual Basic">Visual Basic</a>, <a href="C_Sharp" title="C Sharp">C#</a>
</td>
</tr>
<tr>
<th scope="row">Implémentations
</th>
<td><a href=".NET_Framework" title=".NET Framework">.NET Framework</a>, <a href="Mono_(informatique)" class="mw-redirect" title="Mono (informatique)">Mono</a>
</td>
</tr>
<tr>
<th scope="row"><a href="Licence_de_logiciel" title="Licence de logiciel">Licence</a>
</th>
<td>Roslyn compiler, <a href="Apache_License" class="mw-redirect" title="Apache License">Apache License 2.0</a><sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>
</td>
</tr>
<tr>
<th scope="row"><a href="Site_web" title="Site web">Site web</a>
</th>
<td><span class="wd_p856"><a rel="nofollow" class="external text" href="https://docs.microsoft.com/en-us/dotnet/visual-basic/">docs.microsoft.com/en-us/dotnet/visual-basic</a> et <a rel="nofollow" class="external text" href="https://docs.microsoft.com/ja-jp/dotnet/visual-basic/">docs.microsoft.com/ja-jp/dotnet/visual-basic</a></span>
</td>
</tr>
<tr>
<th scope="row"><a href="Extension_de_nom_de_fichier" title="Extension de nom de fichier">Extension de fichier</a>
</th>
<td><span class="wd_p1195">vb</span>
</td>
</tr>
<tr>
</tr>
</tbody></table>
<p><b>Visual Basic .NET</b> est un <a href="Langage_de_programmation" title="Langage de programmation">langage de programmation</a> à la syntaxe similaire à celle de <a href="Visual_Basic" title="Visual Basic">Visual Basic 6</a>.
</p><p>VB.NET permet de développer en <a href="Microsoft_.NET" title="Microsoft .NET">.NET</a> via <a href="Visual_Studio" class="mw-redirect" title="Visual Studio">Visual Studio</a>, sur les systèmes d'exploitation <a href="Microsoft_Windows" title="Microsoft Windows">Windows</a> (98, 2000, XP, Vista, 7, 8, 8.1, 10 et 11). Comme tout autre langage de la plateforme .NET, VB.NET est compilé vers le langage intermédiaire <a href="Common_Intermediate_Language" title="Common Intermediate Language">CIL</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Les_IDE_(environnements_de_développement)"><span id="Les_IDE_.28environnements_de_d.C3.A9veloppement.29"></span>Les IDE (environnements de développement)</h2></div>
<p>L'IDE commun et incontournable de tous les langages .NET est <a href="Visual_Studio" class="mw-redirect" title="Visual Studio">Visual Studio</a>. Celui-ci est payant (la licence est propriétaire) mais dispose d'une version gratuite pour les développeurs et petites sociétés (CA inférieur à un million de dollars) nommée Visual Studio Community.
</p><p>Une autre version gratuite existe, limitée à un seul langage : <a href="Microsoft_Visual_Studio_Express" title="Microsoft Visual Studio Express">Visual Studio Express</a>.
</p><p>D'autres IDE gratuits existent, comme <a href="SharpDevelop" title="SharpDevelop">SharpDevelop</a> ou <a href="MonoDevelop" title="MonoDevelop">MonoDevelop</a>, mais ceux-ci sont moins évolués que Visual Studio.
</p>
<div class="mw-heading mw-heading2"><h2 id="Versions">Versions</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Évolutions_:_de_VB6_à_VB7_(non_exhaustif)"><span id=".C3.89volutions_:_de_VB6_.C3.A0_VB7_.28non_exhaustif.29"></span>Évolutions : de VB6 à VB7 (non exhaustif)</h3></div>
<p>Qu'est-ce qui différencie VB6 (<a href="Visual_Basic" title="Visual Basic">Visual Basic</a> 6) par rapport à VB7 (<a href="Visual_Studio" class="mw-redirect" title="Visual Studio">Visual Studio</a> 2003) ? :
</p>
<ul><li>L'orientation objet fait son apparition avec notamment l'intégration de la technologie de l'<a href="H%C3%A9ritage_(Informatique)" class="mw-redirect" title="Héritage (Informatique)">héritage</a>, qui jusqu'à ce jour limitait l'industrialisation du code Visual Basic (VB6 n'était pas un langage orienté objet à proprement parler).</li>
<li>L'intégration de l'environnement de développement (IDE) dans la suite Visual Studio permettant d'utiliser d'autres langages comme Visual <a href="C_plus_plus" class="mw-redirect" title="C plus plus">C++</a> ou <a href="C_sharp" class="mw-redirect" title="C sharp">Visual C#</a>. Une bibliothèque de fonction faite en C# sera totalement compatible et utilisable dans une application VB.NET.</li>
<li>Le code produit par VB.NET est compilé dans un même <a href="Langage_interm%C3%A9diaire" title="Langage intermédiaire">langage intermédiaire</a> qu'on appelle le <a href="Common_Intermediate_Language" title="Common Intermediate Language">CIL</a> (Common Intermediate Language) ou MSIL (Microsoft Intermediate Language). Ce langage est le même que le résultat d'une compilation de C#.</li>
<li>La connexion aux <a href="Bases_de_donn%C3%A9es" class="mw-redirect" title="Bases de données">bases de données</a> est facilitée par l'amélioration des outils de <a href="Glisser-d%C3%A9poser" title="Glisser-déposer">glisser-déposer</a> et l'utilisation de la dernière technologie <a href="ActiveX_Data_Object" class="mw-redirect" title="ActiveX Data Object">ADO</a>, ADO.NET.</li>
<li>La technologie <a href="Extensible_Markup_Language" title="Extensible Markup Language">XML</a> est intégrée nativement dans .NET, ce qui permet la création plus facile d'application en ligne ou de sauvegarde de données.</li>
<li>Le générateur de code <a href="Structured_Query_Language" title="Structured Query Language">SQL</a> est beaucoup plus performant.</li>
<li>L'écriture de gestionnaires d'erreurs tient compte du <a href="Multithreading" title="Multithreading">Multithreading</a> via des blocs TRY/CATCH.</li>
<li>La portée des instructions <a href="Goto_(informatique)" title="Goto (informatique)">GOTO</a> est limitée (les sauts ne peuvent se faire qu'au sein d'une même fonction). Ce comportement est dû au fonctionnement-même de la plateforme .NET et est commun à tous les langages .NET : C#, J#, etc.</li>
<li>La déclaration des variables est rendue obligatoire par défaut (contrairement au <a href="Visual_Basic" title="Visual Basic">Visual Basic 6</a> où cette fonctionnalité était désactivée par défaut).</li>
<li>L'intégration de nouvelles <a href="Classe_(informatique)" title="Classe (informatique)">classes</a> d'objet .NET s'est faite tout en permettant pour les versions intermédiaires de réutiliser les objets .COM rendant la migration plus facile de <a href="Visual_Basic" title="Visual Basic">Visual Basic 6</a> à VB Net. VB.NET est le seul langage de .NET à avoir une intégration « en profondeur » des objets COM.</li>
<li>Les pointeurs vers des fonctions peuvent et doivent (dans 99 % des cas) désormais être typés (notion de délégués).</li></ul>
<div class="mw-heading mw-heading3"><h3 id="Évolutions_:_VB7_à_VB8_(non_exhaustif)"><span id=".C3.89volutions_:_VB7_.C3.A0_VB8_.28non_exhaustif.29"></span>Évolutions : VB7 à VB8 (non exhaustif)</h3></div>
<p>Quelques nouveautés ont fait leur apparition entre VB7 et VB8, mais c'est surtout le passage du <a href="Framework_.NET" class="mw-redirect" title="Framework .NET">framework .NET</a> 1.1 au 2.0 qui marque cette évolution.
</p><p>En voici tout de même un résumé :
</p>
<ul><li>Les classes partielles, permettant de répartir l’implémentation d’une classe sur plusieurs fichiers.</li>
<li>Les types génériques, évolution typée des templates C++.</li>
<li>Les types « nullables », c'est-à-dire la possibilité de spécifier qu’un type de valeur peut être nul. Ceux-ci sont déclarés avec le caractère point d'interrogation « ? » suivant le nom du type, comme ceci : <code>Dim X as Integer? = Nothing</code> (VB9) ou avec une classe particulière (VB8+). Cette valeur « Nothing » serait, si le « ? » n'était pas spécifié, converti en 0 dans ce cas-ci. Dans le nouveau système, (X+10) vaudrait « Nothing » (Nothing est absorbant dans tous les opérateurs), et pas 10 comme cela aurait été le cas autrement. Tout membre d'une valeur « vide » est « vide ».</li>
<li>La documentation est automatiquement générée depuis des commentaires spéciaux dans le code.</li></ul>
<div class="mw-heading mw-heading3"><h3 id="Évolutions_:_VB8_à_VB9_(non_exhaustif)"><span id=".C3.89volutions_:_VB8_.C3.A0_VB9_.28non_exhaustif.29"></span>Évolutions : VB8 à VB9 (non exhaustif)</h3></div>
<p>VB9 a évidemment implémenté toutes les nouvelles fonctionnalités de C#, ainsi que quelques autres :
</p>
<ul><li>LINQ, XLINQ, DLINQ…</li>
<li>Expression Trees (fonctions anonymes)</li>
<li>Assouplissement des conversions entre délégués</li>
<li><a rel="nofollow" class="external text" href="http://blogs.codes-sources.com/playtime/archive/2008/05/21/vb9-xml-literal-les-d-veloppeurs-c-vont-tre-jaloux.aspx">XML Littéral</a></li>
<li>Introduction du IF ternaire (équivalent de bool?truePart:falsePart), optimisé par rapport à IIF()</li>
<li>La migration du code VB6 vers .NET, et la rétro-compatibilité avec ce langage (Classe VB6) ont été retirés.</li></ul>
<div class="mw-heading mw-heading3"><h3 id="Évolutions_:_VB9_à_VB10"><span id=".C3.89volutions_:_VB9_.C3.A0_VB10"></span>Évolutions : VB9 à VB10</h3></div>
<p>VB10 (aussi appelé VBx) marque un tournant majeur dans l'évolution de VB. Outre le fait qu'il sera intégré dans le Framework 4, il devrait surtout combler totalement son "retard" par rapport à C# sur certains points (tout comme C# comblera son retard envers VB), vu que la "coévolution" des langages C# et VB.NET a été officiellement annoncée. Cela assure non seulement un futur stable à VB.NET, qui ne pourra pas être délaissé par Microsoft mais aussi une garantie que tout ce qui est faisable en C# le sera toujours aussi sous VB.NET (même si c'est d'une autre façon).
</p><p>Les fonctionnalités prévues pour VBx :
</p>
<ul><li>Objets dynamiques (permet notamment la <a href="Programmation_orient%C3%A9e_prototype" title="Programmation orientée prototype">Programmation orientée prototype</a> et la communication entre des langages dynamiques (<a href="JScript" title="JScript">JScript</a>…) et les langages de la plateforme .NET)</li>
<li>Gestion implicite des interfaces (comme C#)</li>
<li>Gestion des méthodes anonymes</li>
<li>Simplification de l'écriture des tableaux, collections, listes et dictionnaires.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Quelques_différences_entre_C#_et_VB.NET_(non_exhaustif)"><span id="Quelques_diff.C3.A9rences_entre_C.23_et_VB.NET_.28non_exhaustif.29"></span>Quelques différences entre C# et VB.NET (non exhaustif)</h2></div>
<p>Voici les différences les plus flagrantes entre VB.NET et C# (VB.NET et C# évoluant, les éléments de cette liste peuvent être obsolètes):
</p>
<ul><li>VB supporte les paramètres optionnels (C# ne le supporte que depuis sa version 4)</li>
<li>VB supporte le "late-binding" (appel d'une propriété/fonction avec son nom, sans connaitre le type de l'objet (pour les objets COM))</li>
<li>L'espace de nom Microsoft.VisualBasic donne une compatibilité par rapport à VB6. Il est à éviter si une solution plus performante existe.</li>
<li>L'espace "My" implémente de nombreux appels WMI ou d'IO, ainsi que plusieurs "raccourcis" dans la gestion des ressources et paramètres d'applications. (VB8+)</li>
<li>VB supporte la structure With</li>
<li>Gestion des évènements simplifiée dans les fenêtres et contrôles</li>
<li>On peut définir une méthode d'interface avec un nom différent que celui proposé au départ (si on veut redéfinir une fonction dans la classe avec un même nom mais une action différente)</li>
<li>Support du mot-clé When dans le bloc Catch (exemple : <code>Catch ex as ComException When ex.ErrNumber = 30</code>)</li>
<li>XML Littéral n'est pas implémenté en C#.</li>
<li>Les Custom Events ne sont pas implémentés en C#.</li></ul>
<p>Une liste des différences (en 2005) entre C# et VB.NET plus complète existe <a rel="nofollow" class="external text" href="http://www.codeproject.com/KB/dotnet/vbnet_c__difference.aspx">ici</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Quelques_exemples_de_code_en_VB.NET">Quelques exemples de code en VB.NET</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Hello_World_en_VB.NET_(Mode_Console)"><span id="Hello_World_en_VB.NET_.28Mode_Console.29"></span>Hello World en VB.NET (Mode Console)</h3></div>
<div class="mw-highlight mw-highlight-lang-vbnet mw-content-ltr" dir="ltr"><pre><span></span><span class="k">Public</span><span class="w"> </span><span class="k">Module</span><span class="w"> </span><span class="nn">HelloWorld</span>
<span class="w"> </span><span class="c">' Les lignes qui suivent sont toutes facultatives, mais conseillées</span>
<span class="w"> </span><span class="c">' Elles sont automatiquement transformées en documentation</span>
<span class="w"> </span><span class="c">''' <summary>Point d'entrée du programme</summary></span>
<span class="w"> </span><span class="c">''' <param name="Args">Les arguments en ligne de commande passé au programme</param></span>
<span class="w"> </span><span class="k">Public</span><span class="w"> </span><span class="k">Sub</span><span class="w"> </span><span class="nf">Main</span><span class="p">(</span><span class="k">ByVal</span><span class="w"> </span><span class="n">Args</span><span class="w"> </span><span class="ow">As</span><span class="w"> </span><span class="kt">String</span><span class="p">())</span>
<span class="w"> </span><span class="c">' Écrire dans la console</span>
<span class="w"> </span><span class="n">Console</span><span class="p">.</span><span class="n">WriteLine</span><span class="p">(</span><span class="s">"Hello World!"</span><span class="p">)</span>
<span class="w"> </span><span class="c">' Attendre que l'utilisateur appuie sur une touche</span>
<span class="w"> </span><span class="n">Console</span><span class="p">.</span><span class="n">ReadKey</span><span class="p">(</span><span class="k">False</span><span class="p">)</span>
<span class="w"> </span><span class="k">End</span><span class="w"> </span><span class="k">Sub</span>
<span class="k">End</span><span class="w"> </span><span class="k">Module</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="Hello_World_en_VB.NET_(Mode_Windows_Forms)"><span id="Hello_World_en_VB.NET_.28Mode_Windows_Forms.29"></span>Hello World en VB.NET (Mode Windows Forms)</h3></div>
<div class="mw-highlight mw-highlight-lang-vbnet mw-content-ltr" dir="ltr"><pre><span></span><span class="k">Public</span><span class="w"> </span><span class="k">Class</span><span class="w"> </span><span class="nc">Form1</span>
<span class="w"> </span><span class="k">Public</span><span class="w"> </span><span class="k">Sub</span><span class="w"> </span><span class="nf">AfficheMessage</span><span class="p">()</span>
<span class="w"> </span><span class="c">'1ère solution (Fonctionne aussi en VBScript)</span>
<span class="w"> </span><span class="n">MsgBox</span><span class="p">(</span><span class="s">"Hello World!"</span><span class="p">)</span>
<span class="w"> </span><span class="c">'2ème solution</span>
<span class="w"> </span><span class="n">MessageBox</span><span class="p">.</span><span class="n">Show</span><span class="p">(</span><span class="s">"Hello World!"</span><span class="p">)</span>
<span class="w"> </span><span class="c">'Autre design </span>
<span class="w"> </span><span class="n">MsgBox</span><span class="p">(</span><span class="s">"Hello World"</span><span class="p">,</span><span class="w"> </span><span class="n">MsgBoxStyle</span><span class="p">.</span><span class="n">Critical</span><span class="p">,</span><span class="w"> </span><span class="s">"Titre, hello world"</span><span class="p">)</span>
<span class="w"> </span><span class="c">'OU</span>
<span class="w"> </span><span class="n">MsgBox</span><span class="p">(</span><span class="s">"Hello World"</span><span class="p">,</span><span class="w"> </span><span class="n">MsgBoxStyle</span><span class="p">.</span><span class="n">Information</span><span class="p">,</span><span class="w"> </span><span class="s">"Titre, hello world"</span><span class="p">)</span>
<span class="w"> </span><span class="k">End</span><span class="w"> </span><span class="k">Sub</span>
<span class="k">End</span><span class="w"> </span><span class="k">Class</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="Boucles_et_conditions">Boucles et conditions</h3></div>
<div class="mw-highlight mw-highlight-lang-vbnet mw-content-ltr" dir="ltr"><pre><span></span><span class="c">'</span>
<span class="c">' Une simple condition IF</span>
<span class="c">'</span>
<span class="k">If</span><span class="w"> </span><span class="n">XCondition</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="k">Then</span>
<span class="w"> </span><span class="c">' XCondition vaut 3</span>
<span class="k">ElseIf</span><span class="w"> </span><span class="n">YCondition</span><span class="w"> </span><span class="o"><></span><span class="w"> </span><span class="mi">4</span><span class="w"> </span><span class="k">Then</span>
<span class="w"> </span><span class="c">' XCondition ne vaut pas 3</span>
<span class="w"> </span><span class="c">' YCondition ne vaut pas 4</span>
<span class="k">ElseIf</span><span class="w"> </span><span class="n">ZCondition</span><span class="w"> </span><span class="ow">Is</span><span class="w"> </span><span class="n">AnotherObject</span>
<span class="w"> </span><span class="c">' XCondition ne vaut pas 3</span>
<span class="w"> </span><span class="c">' YCondition vaut 4</span>
<span class="w"> </span><span class="c">' ZCondition et AnotherObject renvoient vers le même objet</span>
<span class="k">Else</span><span class="w"> </span>
<span class="w"> </span><span class="c">' Aucune des conditions précédentes n'a été rencontrée</span>
<span class="k">End</span><span class="w"> </span><span class="k">If</span>
<span class="c">'</span>
<span class="c">' Un Select Case optimisé (Switch en C#)</span>
<span class="c">'</span>
<span class="k">Select</span><span class="w"> </span><span class="k">Case</span><span class="w"> </span><span class="n">X</span>
<span class="w"> </span><span class="k">Case</span><span class="w"> </span><span class="mi">0</span>
<span class="w"> </span><span class="c">' X = 0</span>
<span class="w"> </span><span class="k">Case</span><span class="w"> </span><span class="mi">1</span>
<span class="w"> </span><span class="c">' X = 1</span>
<span class="w"> </span><span class="k">Case</span><span class="w"> </span><span class="mi">2</span>
<span class="w"> </span><span class="c">' X = 2</span>
<span class="w"> </span><span class="k">Case</span><span class="w"> </span><span class="k">Else</span>
<span class="w"> </span><span class="c">' X <> 1</span>
<span class="k">End</span><span class="w"> </span><span class="k">select</span>
<span class="c">'</span>
<span class="c">' Un SELECT CASE translaté en IF/ELSE IF à la compilation</span>
<span class="c">'</span>
<span class="k">Select</span><span class="w"> </span><span class="k">Case</span><span class="w"> </span><span class="n">Y</span>
<span class="w"> </span><span class="k">Case</span><span class="w"> </span><span class="ow">Is</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">3</span>
<span class="w"> </span><span class="c">' Y < 3</span>
<span class="w"> </span><span class="k">Case</span><span class="w"> </span><span class="mi">3</span>
<span class="w"> </span><span class="c">' Y = 3</span>
<span class="w"> </span><span class="k">Case</span><span class="w"> </span><span class="k">Else</span>
<span class="w"> </span><span class="c">' Y > 3 dans ce cas</span>
<span class="k">End</span><span class="w"> </span><span class="k">Case</span>
<span class="c">'</span>
<span class="c">' Boucle WHILE</span>
<span class="c">'</span>
<span class="k">While</span><span class="w"> </span><span class="n">ImTrue</span>
<span class="w"> </span><span class="c">' ImTrue est vrai</span>
<span class="w"> </span><span class="c">' Ici on change la valeur de ImTrue</span>
<span class="w"> </span><span class="n">ImTrue</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">False</span>
<span class="k">End</span><span class="w"> </span><span class="k">While</span>
<span class="c">' ImTrue n'est plus vrai</span>
<span class="c">'</span>
<span class="c">' Boucle Do...Loop</span>
<span class="c">'</span>
<span class="n">ImFalse</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">False</span>
<span class="k">Do</span>
<span class="w"> </span><span class="c">' Aucune condition n'a été appliquée si c'est la première fois</span>
<span class="w"> </span><span class="c">' Sinon, c'est que ImFalse n'est pas faux </span>
<span class="w"> </span><span class="c">' Dans cet exemple, le code n'est pas relancé une {{2e}} fois</span>
<span class="k">Loop</span><span class="w"> </span><span class="n">Until</span><span class="w"> </span><span class="n">ImFalse</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">False</span>
<span class="c">' ImFalse est bien faux</span>
<span class="c">'</span>
<span class="c">' Boucles For et For Each</span>
<span class="c">'</span>
<span class="k">For</span><span class="w"> </span><span class="n">X</span><span class="w"> </span><span class="ow">As</span><span class="w"> </span><span class="kt">Integer</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="k">to</span><span class="w"> </span><span class="mi">9</span>
<span class="w"> </span><span class="c">' Ce code sera exécuté 10 fois</span>
<span class="k">Next</span>
<span class="k">For</span><span class="w"> </span><span class="n">X</span><span class="w"> </span><span class="ow">As</span><span class="w"> </span><span class="kt">Integer</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">10</span><span class="w"> </span><span class="k">To</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="k">Step</span><span class="w"> </span><span class="o">-</span><span class="mi">1</span>
<span class="w"> </span><span class="c">' Ce code sera exécuté 10 fois en sens inverse</span>
<span class="k">Next</span>
<span class="k">For</span><span class="w"> </span><span class="k">Each</span><span class="w"> </span><span class="n">Element</span><span class="w"> </span><span class="ow">As</span><span class="w"> </span><span class="n">ElementType</span><span class="w"> </span><span class="ow">In</span><span class="w"> </span><span class="n">Array</span>
<span class="w"> </span><span class="c">' Ce code sera exécuté autant de fois qu'il y a d'éléments de type ElementType dans Array</span>
<span class="k">Next</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="Les_tableaux">Les tableaux</h3></div>
<div class="mw-highlight mw-highlight-lang-vbnet mw-content-ltr" dir="ltr"><pre><span></span><span class="c">'Créer un tableau de texte, vide et de taille infini</span>
<span class="k">Dim</span><span class="w"> </span><span class="n">Tableau</span><span class="p">()</span><span class="w"> </span><span class="ow">As</span><span class="w"> </span><span class="kt">String</span>
<span class="c">'Créer un tableau de nombres naturels, vide et de taille infini</span>
<span class="k">Dim</span><span class="w"> </span><span class="n">Tableau</span><span class="p">()</span><span class="w"> </span><span class="ow">As</span><span class="w"> </span><span class="kt">Integer</span>
<span class="c">'Créer un tableau de nombres réels, vide et de taille infini</span>
<span class="k">Dim</span><span class="w"> </span><span class="n">Tableau</span><span class="p">()</span><span class="w"> </span><span class="ow">As</span><span class="w"> </span><span class="kt">Double</span>
<span class="c">'Assigne une valeur à la première case du tableau </span>
<span class="n">Tableau</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"Case de tableau"</span>
<span class="n">Tableau</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span>
<span class="n">Tableau</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">1.5</span>
<span class="c">'Créer un tableau de texte de deux lignes et deux colonnes de texte et vide</span>
<span class="k">Dim</span><span class="w"> </span><span class="n">Tableau</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="ow">As</span><span class="w"> </span><span class="kt">String</span>
<span class="c">'Créer un tableau de texte de deux colonnes et une ligne comportant "Bonjour" et "Au revoir"</span>
<span class="k">Dim</span><span class="w"> </span><span class="n">Tableau</span><span class="p">()</span><span class="w"> </span><span class="ow">As</span><span class="w"> </span><span class="kt">String</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="s">"Bonjour"</span><span class="p">,</span><span class="w"> </span><span class="s">"Au revoir"</span><span class="p">}</span>
<span class="c">'Créer un tableau de texte de deux colonnes et deux lignes</span>
<span class="k">Dim</span><span class="w"> </span><span class="n">Tableau</span><span class="p">(,)</span><span class="w"> </span><span class="ow">As</span><span class="w"> </span><span class="kt">String</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{{</span><span class="s">"Colonne 1, ligne 1"</span><span class="p">,</span><span class="s">"Colonne 2, ligne 1"</span><span class="p">},</span><span class="w"> </span><span class="p">{</span><span class="s">"Colonne 1, ligne 2"</span><span class="p">,</span><span class="w"> </span><span class="s">"Colonne 2, ligne 2"</span><span class="p">}}</span>
<span class="c">''Créer un tableau puis le redimensionner en sauvegardant les valeurs</span>
<span class="c">'Créer un tableau de dix lignes et dix colonnes</span>
<span class="k">Dim</span><span class="w"> </span><span class="n">Tableau</span><span class="p">(</span><span class="mi">9</span><span class="p">,</span><span class="mi">9</span><span class="p">)</span><span class="w"> </span><span class="ow">As</span><span class="w"> </span><span class="kt">String</span>
<span class="c">'Redimensionner en vingt lignes et vingt colonnes en préservant les valeurs</span>
<span class="k">Redim</span><span class="w"> </span><span class="n">Preserve</span><span class="w"> </span><span class="n">Tableau</span><span class="p">(</span><span class="mi">19</span><span class="p">,</span><span class="mi">19</span><span class="p">)</span>
<span class="c">'Effacer toutes les valeurs du tableau en récupérant l'espace</span>
<span class="k">Erase</span><span class="w"> </span><span class="n">Tableau</span>
<span class="c">'Réinitialisation du tableau Tableau à partir de l'élément 1 et pour 5 éléments</span>
<span class="n">Array</span><span class="p">.</span><span class="n">Clear</span><span class="p">(</span><span class="n">Tableau</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p">)</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="Gestion_des_exceptions">Gestion des exceptions</h3></div>
<p>VB.NET possède les instructions <i>try</i> et <i>catch</i> permettant de gérer les exceptions (comportement non attendu des instructions du programme).
</p><p>Exemples :
</p>
<div class="mw-highlight mw-highlight-lang-vbnet mw-content-ltr" dir="ltr"><pre><span></span><span class="k">Try</span>
<span class="w"> </span><span class="n">My</span><span class="p">.</span><span class="n">Computer</span><span class="p">.</span><span class="n">FileSystem</span><span class="p">.</span><span class="n">FileReadBytes</span><span class="p">(</span><span class="s">"C:\Chemin\Fichier.ext"</span><span class="p">)</span>
<span class="k">Catch</span><span class="w"> </span><span class="n">Ex</span><span class="w"> </span><span class="ow">as</span><span class="w"> </span><span class="n">FileNotFoundException</span><span class="w"> </span><span class="c">'Pour l'erreur Fichier introuvable</span>
<span class="w"> </span><span class="n">MessageBox</span><span class="p">.</span><span class="n">Show</span><span class="p">(</span><span class="s">"Impossible trouver le fichier"</span><span class="p">,</span><span class="w"> </span><span class="s">"Erreur"</span><span class="p">)</span>
<span class="k">Catch</span><span class="w"> </span><span class="n">Ex</span><span class="w"> </span><span class="ow">as</span><span class="w"> </span><span class="n">Exception</span><span class="w"> </span><span class="c">'Pour les autres erreurs.</span>
<span class="w"> </span><span class="n">MessageBox</span><span class="p">.</span><span class="n">Show</span><span class="p">(</span><span class="s">"Une erreur inconnue s'est produite. Erreur renvoyée: "</span><span class="w"> </span><span class="o">&</span><span class="w"> </span><span class="n">ex</span><span class="p">.</span><span class="n">Message</span><span class="p">,</span><span class="w"> </span><span class="s">"Erreur"</span><span class="p">)</span>
<span class="k">End</span><span class="w"> </span><span class="k">Try</span>
<span class="c">'Remarquez que ex récupère les données</span>
<span class="c">'de l'erreur, permettant de les traiter.</span>
<span class="c">'Il y a d'autres options que Message. Consultez la documentation Visual Basic .NET pour en savoir plus.</span>
<span class="k">Try</span>
<span class="w"> </span><span class="n">SomeUnknownCOMObject</span><span class="p">.</span><span class="n">DoSomething</span><span class="p">()</span>
<span class="k">Catch</span><span class="w"> </span><span class="n">Ex</span><span class="w"> </span><span class="ow">as</span><span class="w"> </span><span class="n">COMExcpetion</span><span class="w"> </span><span class="k">When</span><span class="w"> </span><span class="n">Ex</span><span class="p">.</span><span class="n">ErrorCode</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">4</span>
<span class="w"> </span><span class="c">' The object was of the excpected type but he throwned</span>
<span class="w"> </span><span class="c">' an error with [[HRESULT]] 4, which is possible as the </span>
<span class="w"> </span><span class="c">' documentation of the object says (it's an exemple).</span>
<span class="w"> </span><span class="n">MessageBox</span><span class="p">.</span><span class="n">Show</span><span class="p">(</span><span class="s">"L'objet n'était pas prêt"</span><span class="p">)</span>
<span class="w"> </span><span class="c">' Throw some new Application-Specific error.</span>
<span class="w"> </span><span class="k">Throw</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Exception</span><span class="w"> </span><span class="p">(</span><span class="s">"The object was not ready."</span><span class="p">)</span>
<span class="k">Catch</span><span class="w"> </span><span class="n">Ex</span><span class="w"> </span><span class="ow">as</span><span class="w"> </span><span class="n">Exception</span>
<span class="w"> </span><span class="c">' Display some message</span>
<span class="w"> </span><span class="n">MessageBox</span><span class="p">.</span><span class="n">Show</span><span class="p">(</span><span class="s">"Une erreur inconnue s'est produite"</span><span class="p">,</span><span class="w"> </span><span class="s">"Erreur"</span><span class="p">)</span>
<span class="w"> </span><span class="c">' But throw the (same) exception</span>
<span class="w"> </span><span class="k">Throw</span>
<span class="k">Finally</span>
<span class="w"> </span><span class="c">' Quoi qu'il se passe, on fait cela</span>
<span class="w"> </span><span class="c">' Même si une erreur est survenue, ce code sera lancé</span>
<span class="w"> </span><span class="k">Try</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="n">SomeUnkwnowCOMOBject</span><span class="p">.</span><span class="n">DoSomethingAnyWay</span><span class="p">()</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="k">Catch</span><span class="w"> </span><span class="n">ex</span><span class="w"> </span><span class="ow">as</span><span class="w"> </span><span class="n">Exception</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="k">End</span><span class="w"> </span><span class="k">Try</span>
<span class="k">End</span><span class="w"> </span><span class="k">Try</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="Exemple_d'utilisation_de_LINQ"><span id="Exemple_d.27utilisation_de_LINQ"></span>Exemple d'utilisation de <a href="LINQ" class="mw-redirect" title="LINQ">LINQ</a></h3></div>
<div class="mw-highlight mw-highlight-lang-vbnet mw-content-ltr" dir="ltr"><pre><span></span><span class="c">' Retourne un énumérateur qui renvoie tous les noms des fenêtres enfants qui sont des éditeurs de texte</span>
<span class="c">' Visual Studio 2008 trouve le type de la variable automatiquement, similaire au "var" du C#</span>
<span class="k">Dim</span><span class="w"> </span><span class="n">AllText</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">From</span><span class="w"> </span><span class="n">CW</span><span class="w"> </span><span class="ow">in</span><span class="w"> </span><span class="n">MyFormInstance</span><span class="p">.</span><span class="n">ChildWindows</span>
<span class="w"> </span><span class="n">Where</span><span class="w"> </span><span class="n">CW</span><span class="p">.</span><span class="n">GetType</span><span class="p">()</span><span class="w"> </span><span class="ow">is</span><span class="w"> </span><span class="ow">GetType</span><span class="p">(</span><span class="n">MyTextEditorWindow</span><span class="p">)</span>
<span class="w"> </span><span class="k">Select</span><span class="w"> </span><span class="n">CW</span><span class="p">.</span><span class="n">Text</span>
<span class="c">' Crée un objet XML (un Document XML, pas une chaine de caractère)</span>
<span class="c">' Visual Studio 2008 trouve le type de la variable automatiquement, similaire au "var" du C#</span>
<span class="k">Dim</span><span class="w"> </span><span class="n">XMLDoc</span><span class="w"> </span><span class="o">=</span><span class="w"> </span>_
<span class="na"> <root></span><span class="o"><</span><span class="err">%</span><span class="w"> </span><span class="k">For</span><span class="w"> </span><span class="k">Each</span><span class="w"> </span><span class="n">Item</span><span class="w"> </span><span class="ow">in</span><span class="w"> </span><span class="n">Items</span><span class="w"> </span><span class="err">%</span><span class="o">></span>
<span class="w"> </span><span class="o"><</span><span class="n">item</span><span class="w"> </span><span class="n">name</span><span class="o">=</span><span class="s">"<%= Item.Name %>"</span><span class="w"> </span><span class="o">/></span>
<span class="w"> </span><span class="o"><</span><span class="err">%</span><span class="w"> </span><span class="k">Next</span><span class="w"> </span><span class="err">%</span><span class="o">></</span><span class="n">root</span><span class="o">></span>
<span class="c">' Sauvegarde dans un fichier le document XML</span>
<span class="n">XMLDoc</span><span class="p">.</span><span class="n">Save</span><span class="p">(</span><span class="s">"FileName.xml"</span><span class="p">)</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="Exemple_d'un_événement_simple"><span id="Exemple_d.27un_.C3.A9v.C3.A9nement_simple"></span>Exemple d'un événement simple</h3></div>
<div class="mw-highlight mw-highlight-lang-vbnet mw-content-ltr" dir="ltr"><pre><span></span><span class="c">' Déclaration des objets (fonctions, événements, ...) pour la fenêtre Form1</span>
<span class="k">Public</span><span class="w"> </span><span class="k">Class</span><span class="w"> </span><span class="nc">Form1</span>
<span class="w"> </span><span class="c">' Lorsque l'utilisateur clique sur l'objet Button1</span>
<span class="w"> </span><span class="k">Private</span><span class="w"> </span><span class="k">Sub</span><span class="w"> </span><span class="nf">Button1_Click</span><span class="p">(</span><span class="k">ByVal</span><span class="w"> </span><span class="n">sender</span><span class="w"> </span><span class="ow">As</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Object</span><span class="p">,</span><span class="w"> </span><span class="k">ByVal</span><span class="w"> </span><span class="n">e</span><span class="w"> </span><span class="ow">As</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">EventArgs</span><span class="p">)</span><span class="w"> </span><span class="k">Handles</span><span class="w"> </span><span class="n">Button1</span><span class="p">.</span><span class="n">Click</span>
<span class="w"> </span><span class="k">Me</span><span class="p">.</span><span class="n">Close</span><span class="p">()</span><span class="w"> </span><span class="c">' On ferme la fenêtre parente (grâce à Me) donc l'application</span>
<span class="w"> </span><span class="k">End</span><span class="w"> </span><span class="k">Sub</span>
<span class="k">End</span><span class="w"> </span><span class="k">Class</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="Exemple_d'un_code_appelant_une_fonction"><span id="Exemple_d.27un_code_appelant_une_fonction"></span>Exemple d'un code appelant une fonction</h3></div>
<div class="mw-highlight mw-highlight-lang-vbnet mw-content-ltr" dir="ltr"><pre><span></span><span class="k">Public</span><span class="w"> </span><span class="k">Class</span><span class="w"> </span><span class="nc">Form1</span>
<span class="w"> </span><span class="c">' Création de la fonction Quitter avec un Private Sub</span>
<span class="w"> </span><span class="k">Private</span><span class="w"> </span><span class="k">Sub</span><span class="w"> </span><span class="nf">Quitter</span><span class="p">()</span>
<span class="w"> </span><span class="k">Me</span><span class="p">.</span><span class="n">Close</span><span class="p">()</span>
<span class="w"> </span><span class="k">End</span><span class="w"> </span><span class="k">Sub</span>
<span class="w"> </span><span class="c">' Lorsque l'utilisateur clique sur l'objet Button1</span>
<span class="w"> </span><span class="k">Private</span><span class="w"> </span><span class="k">Sub</span><span class="w"> </span><span class="nf">Button1_Click</span><span class="p">(</span><span class="k">ByVal</span><span class="w"> </span><span class="n">sender</span><span class="w"> </span><span class="ow">As</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Object</span><span class="p">,</span><span class="w"> </span><span class="k">ByVal</span><span class="w"> </span><span class="n">e</span><span class="w"> </span><span class="ow">As</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">EventArgs</span><span class="p">)</span><span class="w"> </span><span class="k">Handles</span><span class="w"> </span><span class="n">Button1</span><span class="p">.</span><span class="n">Click</span>
<span class="w"> </span><span class="k">Call</span><span class="w"> </span><span class="n">Quitter</span><span class="p">()</span><span class="w"> </span><span class="c">' On appelle Private Sub Quitter()</span>
<span class="w"> </span><span class="k">End</span><span class="w"> </span><span class="k">Sub</span>
<span class="w"> </span><span class="c">' Lorsque l'utilisateur clique sur l'objet Button2</span>
<span class="w"> </span><span class="k">Private</span><span class="w"> </span><span class="k">Sub</span><span class="w"> </span><span class="nf">Button2_Click</span><span class="p">(</span><span class="k">ByVal</span><span class="w"> </span><span class="n">sender</span><span class="w"> </span><span class="ow">As</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Object</span><span class="p">,</span><span class="w"> </span><span class="k">ByVal</span><span class="w"> </span><span class="n">e</span><span class="w"> </span><span class="ow">As</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">EventArgs</span><span class="p">)</span><span class="w"> </span><span class="k">Handles</span><span class="w"> </span><span class="n">Button2</span><span class="p">.</span><span class="n">Click</span>
<span class="w"> </span><span class="k">Call</span><span class="w"> </span><span class="n">Quitter</span><span class="p">()</span><span class="w"> </span><span class="c">' L'avantage de ce code, c'est qu'on peut appeler Quitter() autant de fois que l'on souhaite</span>
<span class="w"> </span><span class="k">End</span><span class="w"> </span><span class="k">Sub</span>
<span class="k">End</span><span class="w"> </span><span class="k">Class</span>
</pre></div>
<div class="mw-heading mw-heading2"><h2 id="Identité_visuelle"><span id="Identit.C3.A9_visuelle"></span>Identité visuelle</h2></div>
<ul class="gallery mw-gallery-traditional">
<li class="gallerybox" style="width: 155px">
<div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:File"></span></div>
<div class="gallerytext">Ancien <a href="Logo" title="Logo">logo</a>.</div>
</li>
<li class="gallerybox" style="width: 155px">
<div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:File"></span></div>
<div class="gallerytext">Logo actuel.</div>
</li>
</ul>
<div class="mw-heading mw-heading2"><h2 id="Voir_aussi">Voir aussi</h2></div>
<style data-mw-deduplicate="TemplateStyles:r194021218">
/* start https://fr.wikipedia.org/ */
.mw-parser-output .autres-projets>.titre{text-align:center;margin:0.2em 0}.mw-parser-output .autres-projets>ul{margin:0;padding:0}.mw-parser-output .autres-projets>ul>li{list-style:none;margin:0.2em 0;text-indent:0;padding-left:24px;min-height:20px;text-align:left;display:block}.mw-parser-output .autres-projets>ul>li>a{font-style:italic}@media(max-width:720px){.mw-parser-output .autres-projets{float:none}}
/* end https://fr.wikipedia.org/ */
</style>
<div class="mw-heading mw-heading3"><h3 id="Articles_connexes">Articles connexes</h3></div>
<ul><li><a href="Microsoft_.NET" title="Microsoft .NET">Microsoft .NET</a></li>
<li><a href="Visual_Studio" class="mw-redirect" title="Visual Studio">Visual Studio</a></li>
<li><a href="C_sharp" class="mw-redirect" title="C sharp">C#</a></li>
<li><a href="Visual_Basic" title="Visual Basic">Visual Basic</a></li>
<li><a href="BASIC" class="mw-redirect" title="BASIC">BASIC</a></li></ul>
<div class="mw-heading mw-heading3"><h3 id="Notes_et_références"><span id="Notes_et_r.C3.A9f.C3.A9rences"></span>Notes et références</h3></div>
<div class="references-small decimal" style=""><div class="mw-references-wrap"><ol class="references">
<li id="cite_note-wikidata-1d406ea45aac18cea8f0a0b6af1c04df44ff14d1-1"><span class="mw-cite-backlink"><a href="#cite_ref-wikidata-1d406ea45aac18cea8f0a0b6af1c04df44ff14d1_1-0">↑</a> </span><span class="reference-text"><span class="ouvrage">« <a rel="nofollow" class="external text" href="https://learn.microsoft.com/en-us/visualstudio/releases/2019/release-notes-v16.9"><cite style="font-style:normal;">https://learn.microsoft.com/en-us/visualstudio/releases/2019/release-notes-v16.9</cite></a> »</span></span>
</li>
<li id="cite_note-wikidata-f3e0b47c7ffffa2f0fbbd9b2d9d4bb275bc27425-2"><span class="mw-cite-backlink"><a href="#cite_ref-wikidata-f3e0b47c7ffffa2f0fbbd9b2d9d4bb275bc27425_2-0">↑</a> </span><span class="reference-text"><span class="ouvrage">« <a rel="nofollow" class="external text" href="https://learn.microsoft.com/en-us/dotnet/visual-basic/whats-new/#visual-basic-169"><cite style="font-style:normal;">https://learn.microsoft.com/en-us/dotnet/visual-basic/whats-new/#visual-basic-169</cite></a> »</span></span>
</li>
<li id="cite_note-wikidata-b65847688b95af220a3a013b8551f3789edcd85f-3"><span class="mw-cite-backlink"><a href="#cite_ref-wikidata-b65847688b95af220a3a013b8551f3789edcd85f_3-0">↑</a> </span><span class="reference-text"><span class="ouvrage">« <a rel="nofollow" class="external text" href="https://dotnet.microsoft.com/en-us/download/dotnet/9.0"><cite style="font-style:normal;">https://dotnet.microsoft.com/en-us/download/dotnet/9.0</cite></a> »</span></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><a href="#cite_ref-4">↑</a> </span><span class="reference-text"><a rel="nofollow" class="external free" href="https://github.com/dotnet/roslyn/blob/1ff27b046b5c03abb38bfeda44eb82da0b8df9de/License.txt">https://github.com/dotnet/roslyn/blob/1ff27b046b5c03abb38bfeda44eb82da0b8df9de/License.txt</a></span>
</li>
</ol></div>
</div>
<div class="mw-heading mw-heading3"><h3 id="Liens_externes">Liens externes</h3></div>
<ul><li><a rel="nofollow" class="external text" href="https://msdn.microsoft.com/fr-fr/library/2x7h1hfk.aspx">Centre de développement Visual Basic</a>, site <a href="Microsoft_Developer_Network" title="Microsoft Developer Network">MSDN</a> de Microsoft</li>
<li><a rel="nofollow" class="external text" href="https://www.microsoft.com/en-us/download/details.aspx?id=15039">Spécifications du langage Visual Basic</a></li></ul>
<div class="navbox-container" style="clear:both;">
</div>
<ul id="bandeau-portail" class="bandeau-portail"><li><span class="bandeau-portail-element"><span class="bandeau-portail-icone"><span class="noviewer" typeof="mw:File"></span></span> <span class="bandeau-portail-texte">Portail de Microsoft</span> </span></li> <li><span class="bandeau-portail-element"><span class="bandeau-portail-icone"><span class="noviewer" typeof="mw:File"></span></span> <span class="bandeau-portail-texte">Portail de la programmation informatique</span> </span></li> </ul></div><!--htdig_noindex--><div><div class="zim-footer">
Cet article est issu de <a class="external text" title="Dernière modification le 2025-07-24" href="https://fr.wikipedia.org/wiki/?title=Visual_Basic_.NET&oldid=227541188">Wikipédia</a>. Sauf mention contraire, le texte est disponible sous <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.fr">Creative Commons Attribution-Share Alike 4.0</a>. Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>
</body></html>